home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / share / aclocal / gettext.m4 < prev    next >
Text File  |  2005-07-26  |  21KB  |  550 lines

  1. # gettext.m4 serial 37 (gettext-0.14.4)
  2. dnl Copyright (C) 1995-2005 Free Software Foundation, Inc.
  3. dnl This file is free software; the Free Software Foundation
  4. dnl gives unlimited permission to copy and/or distribute it,
  5. dnl with or without modifications, as long as this notice is preserved.
  6. dnl
  7. dnl This file can can be used in projects which are not available under
  8. dnl the GNU General Public License or the GNU Library General Public
  9. dnl License but which still want to provide support for the GNU gettext
  10. dnl functionality.
  11. dnl Please note that the actual code of the GNU gettext library is covered
  12. dnl by the GNU Library General Public License, and the rest of the GNU
  13. dnl gettext package package is covered by the GNU General Public License.
  14. dnl They are *not* in the public domain.
  15.  
  16. dnl Authors:
  17. dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
  18. dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
  19.  
  20. dnl Macro to add for using GNU gettext.
  21.  
  22. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
  23. dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
  24. dnl    default (if it is not specified or empty) is 'no-libtool'.
  25. dnl    INTLSYMBOL should be 'external' for packages with no intl directory,
  26. dnl    and 'no-libtool' or 'use-libtool' for packages with an intl directory.
  27. dnl    If INTLSYMBOL is 'use-libtool', then a libtool library
  28. dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
  29. dnl    depending on --{enable,disable}-{shared,static} and on the presence of
  30. dnl    AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
  31. dnl    $(top_builddir)/intl/libintl.a will be created.
  32. dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
  33. dnl    implementations (in libc or libintl) without the ngettext() function
  34. dnl    will be ignored.  If NEEDSYMBOL is specified and is
  35. dnl    'need-formatstring-macros', then GNU gettext implementations that don't
  36. dnl    support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
  37. dnl INTLDIR is used to find the intl libraries.  If empty,
  38. dnl    the value `$(top_builddir)/intl/' is used.
  39. dnl
  40. dnl The result of the configuration is one of three cases:
  41. dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
  42. dnl    and used.
  43. dnl    Catalog format: GNU --> install in $(datadir)
  44. dnl    Catalog extension: .mo after installation, .gmo in source tree
  45. dnl 2) GNU gettext has been found in the system's C library.
  46. dnl    Catalog format: GNU --> install in $(datadir)
  47. dnl    Catalog extension: .mo after installation, .gmo in source tree
  48. dnl 3) No internationalization, always use English msgid.
  49. dnl    Catalog format: none
  50. dnl    Catalog extension: none
  51. dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
  52. dnl The use of .gmo is historical (it was needed to avoid overwriting the
  53. dnl GNU format catalogs when building on a platform with an X/Open gettext),
  54. dnl but we keep it in order not to force irrelevant filename changes on the
  55. dnl maintainers.
  56. dnl
  57. AC_DEFUN([AM_GNU_GETTEXT],
  58. [
  59.   dnl Argument checking.
  60.   ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
  61.     [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
  62. ])])])])])
  63.   ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
  64.     [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
  65. ])])])])
  66.   define([gt_included_intl], ifelse([$1], [external], [no], [yes]))
  67.   define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], []))
  68.  
  69.   AC_REQUIRE([AM_PO_SUBDIRS])dnl
  70.   ifelse(gt_included_intl, yes, [
  71.     AC_REQUIRE([AM_INTL_SUBDIR])dnl
  72.   ])
  73.  
  74.   dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
  75.   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
  76.   AC_REQUIRE([AC_LIB_RPATH])
  77.  
  78.   dnl Sometimes libintl requires libiconv, so first search for libiconv.
  79.   dnl Ideally we would do this search only after the
  80.   dnl      if test "$USE_NLS" = "yes"; then
  81.   dnl        if test "$gt_cv_func_gnugettext_libc" != "yes"; then
  82.   dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
  83.   dnl the configure script would need to contain the same shell code
  84.   dnl again, outside any 'if'. There are two solutions:
  85.   dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
  86.   dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
  87.   dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
  88.   dnl documented, we avoid it.
  89.   ifelse(gt_included_intl, yes, , [
  90.     AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
  91.   ])
  92.  
  93.   dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation.
  94.   gt_INTL_MACOSX
  95.  
  96.   dnl Set USE_NLS.
  97.   AM_NLS
  98.  
  99.   ifelse(gt_included_intl, yes, [
  100.     BUILD_INCLUDED_LIBINTL=no
  101.     USE_INCLUDED_LIBINTL=no
  102.   ])
  103.   LIBINTL=
  104.   LTLIBINTL=
  105.   POSUB=
  106.  
  107.   dnl If we use NLS figure out what method
  108.   if test "$USE_NLS" = "yes"; then
  109.     gt_use_preinstalled_gnugettext=no
  110.     ifelse(gt_included_intl, yes, [
  111.       AC_MSG_CHECKING([whether included gettext is requested])
  112.       AC_ARG_WITH(included-gettext,
  113.         [  --with-included-gettext use the GNU gettext library included here],
  114.         nls_cv_force_use_gnu_gettext=$withval,
  115.         nls_cv_force_use_gnu_gettext=no)
  116.       AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
  117.  
  118.       nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
  119.       if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
  120.     ])
  121.         dnl User does not insist on using GNU NLS library.  Figure out what
  122.         dnl to use.  If GNU gettext is available we use this.  Else we have
  123.         dnl to fall back to GNU NLS library.
  124.  
  125.         dnl Add a version number to the cache macros.
  126.         define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
  127.         define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
  128.         define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
  129.  
  130.         AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
  131.          [AC_TRY_LINK([#include <libintl.h>
  132. ]ifelse([$2], [need-formatstring-macros],
  133. [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
  134. #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
  135. #endif
  136. changequote(,)dnl
  137. typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
  138. changequote([,])dnl
  139. ], [])[extern int _nl_msg_cat_cntr;
  140. extern int *_nl_domain_bindings;],
  141.             [bindtextdomain ("", "");
  142. return * gettext ("")]ifelse([$2], [need-ngettext], [ + * ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
  143.             gt_cv_func_gnugettext_libc=yes,
  144.             gt_cv_func_gnugettext_libc=no)])
  145.  
  146.         if test "$gt_cv_func_gnugettext_libc" != "yes"; then
  147.           dnl Sometimes libintl requires libiconv, so first search for libiconv.
  148.           ifelse(gt_included_intl, yes, , [
  149.             AM_ICONV_LINK
  150.           ])
  151.           dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
  152.           dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
  153.           dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
  154.           dnl even if libiconv doesn't exist.
  155.           AC_LIB_LINKFLAGS_BODY([intl])
  156.           AC_CACHE_CHECK([for GNU gettext in libintl],
  157.             gt_cv_func_gnugettext_libintl,
  158.            [gt_save_CPPFLAGS="$CPPFLAGS"
  159.             CPPFLAGS="$CPPFLAGS $INCINTL"
  160.             gt_save_LIBS="$LIBS"
  161.             LIBS="$LIBS $LIBINTL"
  162.             dnl Now see whether libintl exists and does not depend on libiconv.
  163.             AC_TRY_LINK([#include <libintl.h>
  164. ]ifelse([$2], [need-formatstring-macros],
  165. [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
  166. #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
  167. #endif
  168. changequote(,)dnl
  169. typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
  170. changequote([,])dnl
  171. ], [])[extern int _nl_msg_cat_cntr;
  172. extern
  173. #ifdef __cplusplus
  174. "C"
  175. #endif
  176. const char *_nl_expand_alias (const char *);],
  177.               [bindtextdomain ("", "");
  178. return * gettext ("")]ifelse([$2], [need-ngettext], [ + * ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
  179.               gt_cv_func_gnugettext_libintl=yes,
  180.               gt_cv_func_gnugettext_libintl=no)
  181.             dnl Now see whether libintl exists and depends on libiconv.
  182.             if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
  183.               LIBS="$LIBS $LIBICONV"
  184.               AC_TRY_LINK([#include <libintl.h>
  185. ]ifelse([$2], [need-formatstring-macros],
  186. [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
  187. #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
  188. #endif
  189. changequote(,)dnl
  190. typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
  191. changequote([,])dnl
  192. ], [])[extern int _nl_msg_cat_cntr;
  193. extern
  194. #ifdef __cplusplus
  195. "C"
  196. #endif
  197. const char *_nl_expand_alias (const char *);],
  198.                 [bindtextdomain ("", "");
  199. return * gettext ("")]ifelse([$2], [need-ngettext], [ + * ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
  200.                [LIBINTL="$LIBINTL $LIBICONV"
  201.                 LTLIBINTL="$LTLIBINTL $LTLIBICONV"
  202.                 gt_cv_func_gnugettext_libintl=yes
  203.                ])
  204.             fi
  205.             CPPFLAGS="$gt_save_CPPFLAGS"
  206.             LIBS="$gt_save_LIBS"])
  207.         fi
  208.  
  209.         dnl If an already present or preinstalled GNU gettext() is found,
  210.         dnl use it.  But if this macro is used in GNU gettext, and GNU
  211.         dnl gettext is already preinstalled in libintl, we update this
  212.         dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
  213.         if test "$gt_cv_func_gnugettext_libc" = "yes" \
  214.            || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
  215.                 && test "$PACKAGE" != gettext-runtime \
  216.                 && test "$PACKAGE" != gettext-tools; }; then
  217.           gt_use_preinstalled_gnugettext=yes
  218.         else
  219.           dnl Reset the values set by searching for libintl.
  220.           LIBINTL=
  221.           LTLIBINTL=
  222.           INCINTL=
  223.         fi
  224.  
  225.     ifelse(gt_included_intl, yes, [
  226.         if test "$gt_use_preinstalled_gnugettext" != "yes"; then
  227.           dnl GNU gettext is not found in the C library.
  228.           dnl Fall back on included GNU gettext library.
  229.           nls_cv_use_gnu_gettext=yes
  230.         fi
  231.       fi
  232.  
  233.       if test "$nls_cv_use_gnu_gettext" = "yes"; then
  234.         dnl Mark actions used to generate GNU NLS library.
  235.         BUILD_INCLUDED_LIBINTL=yes
  236.         USE_INCLUDED_LIBINTL=yes
  237.         LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
  238.         LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
  239.         LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
  240.       fi
  241.  
  242.       CATOBJEXT=
  243.       if test "$gt_use_preinstalled_gnugettext" = "yes" \
  244.          || test "$nls_cv_use_gnu_gettext" = "yes"; then
  245.         dnl Mark actions to use GNU gettext tools.
  246.         CATOBJEXT=.gmo
  247.       fi
  248.     ])
  249.  
  250.     if test -n "$INTL_MACOSX_LIBS"; then
  251.       if test "$gt_use_preinstalled_gnugettext" = "yes" \
  252.          || test "$nls_cv_use_gnu_gettext" = "yes"; then
  253.         dnl Some extra flags are needed during linking.
  254.         LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
  255.         LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
  256.       fi
  257.     fi
  258.  
  259.     if test "$gt_use_preinstalled_gnugettext" = "yes" \
  260.        || test "$nls_cv_use_gnu_gettext" = "yes"; then
  261.       AC_DEFINE(ENABLE_NLS, 1,
  262.         [Define to 1 if translation of program messages to the user's native language
  263.    is requested.])
  264.     else
  265.       USE_NLS=no
  266.     fi
  267.   fi
  268.  
  269.   AC_MSG_CHECKING([whether to use NLS])
  270.   AC_MSG_RESULT([$USE_NLS])
  271.   if test "$USE_NLS" = "yes"; then
  272.     AC_MSG_CHECKING([where the gettext function comes from])
  273.     if test "$gt_use_preinstalled_gnugettext" = "yes"; then
  274.       if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
  275.         gt_source="external libintl"
  276.       else
  277.         gt_source="libc"
  278.       fi
  279.     else
  280.       gt_source="included intl directory"
  281.     fi
  282.     AC_MSG_RESULT([$gt_source])
  283.   fi
  284.  
  285.   if test "$USE_NLS" = "yes"; then
  286.  
  287.     if test "$gt_use_preinstalled_gnugettext" = "yes"; then
  288.       if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
  289.         AC_MSG_CHECKING([how to link with libintl])
  290.         AC_MSG_RESULT([$LIBINTL])
  291.         AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
  292.       fi
  293.  
  294.       dnl For backward compatibility. Some packages may be using this.
  295.       AC_DEFINE(HAVE_GETTEXT, 1,
  296.        [Define if the GNU gettext() function is already present or preinstalled.])
  297.       AC_DEFINE(HAVE_DCGETTEXT, 1,
  298.        [Define if the GNU dcgettext() function is already present or preinstalled.])
  299.     fi
  300.  
  301.     dnl We need to process the po/ directory.
  302.     POSUB=po
  303.   fi
  304.  
  305.   ifelse(gt_included_intl, yes, [
  306.     dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
  307.     dnl to 'yes' because some of the testsuite requires it.
  308.     if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
  309.       BUILD_INCLUDED_LIBINTL=yes
  310.     fi
  311.  
  312.     dnl Make all variables we use known to autoconf.
  313.     AC_SUBST(BUILD_INCLUDED_LIBINTL)
  314.     AC_SUBST(USE_INCLUDED_LIBINTL)
  315.     AC_SUBST(CATOBJEXT)
  316.  
  317.     dnl For backward compatibility. Some configure.ins may be using this.
  318.     nls_cv_header_intl=
  319.     nls_cv_header_libgt=
  320.  
  321.     dnl For backward compatibility. Some Makefiles may be using this.
  322.     DATADIRNAME=share
  323.     AC_SUBST(DATADIRNAME)
  324.  
  325.     dnl For backward compatibility. Some Makefiles may be using this.
  326.     INSTOBJEXT=.mo
  327.     AC_SUBST(INSTOBJEXT)
  328.  
  329.     dnl For backward compatibility. Some Makefiles may be using this.
  330.     GENCAT=gencat
  331.     AC_SUBST(GENCAT)
  332.  
  333.     dnl For backward compatibility. Some Makefiles may be using this.
  334.     INTLOBJS=
  335.     if test "$USE_INCLUDED_LIBINTL" = yes; then
  336.       INTLOBJS="\$(GETTOBJS)"
  337.     fi
  338.     AC_SUBST(INTLOBJS)
  339.  
  340.     dnl Enable libtool support if the surrounding package wishes it.
  341.     INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
  342.     AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
  343.   ])
  344.  
  345.   dnl For backward compatibility. Some Makefiles may be using this.
  346.   INTLLIBS="$LIBINTL"
  347.   AC_SUBST(INTLLIBS)
  348.  
  349.   dnl Make all documented variables known to autoconf.
  350.   AC_SUBST(LIBINTL)
  351.   AC_SUBST(LTLIBINTL)
  352.   AC_SUBST(POSUB)
  353. ])
  354.  
  355.  
  356. dnl Checks for all prerequisites of the intl subdirectory,
  357. dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
  358. dnl            USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
  359. AC_DEFUN([AM_INTL_SUBDIR],
  360. [
  361.   AC_REQUIRE([AC_PROG_INSTALL])dnl
  362.   AC_REQUIRE([AM_MKINSTALLDIRS])dnl
  363.   AC_REQUIRE([AC_PROG_CC])dnl
  364.   AC_REQUIRE([AC_CANONICAL_HOST])dnl
  365.   AC_REQUIRE([gt_GLIBC2])dnl
  366.   AC_REQUIRE([AC_PROG_RANLIB])dnl
  367.   AC_REQUIRE([AC_ISC_POSIX])dnl
  368.   AC_REQUIRE([AC_HEADER_STDC])dnl
  369.   AC_REQUIRE([AC_C_CONST])dnl
  370.   AC_REQUIRE([bh_C_SIGNED])dnl
  371.   AC_REQUIRE([AC_C_INLINE])dnl
  372.   AC_REQUIRE([AC_TYPE_OFF_T])dnl
  373.   AC_REQUIRE([AC_TYPE_SIZE_T])dnl
  374.   AC_REQUIRE([gl_AC_TYPE_LONG_LONG])dnl
  375.   AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl
  376.   AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
  377.   AC_REQUIRE([gt_TYPE_WINT_T])dnl
  378.   AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
  379.   AC_REQUIRE([gl_AC_HEADER_STDINT_H])
  380.   AC_REQUIRE([gt_TYPE_INTMAX_T])
  381.   AC_REQUIRE([gt_PRINTF_POSIX])
  382.   AC_REQUIRE([AC_FUNC_ALLOCA])dnl
  383.   AC_REQUIRE([AC_FUNC_MMAP])dnl
  384.   AC_REQUIRE([gl_GLIBC21])dnl
  385.   AC_REQUIRE([gt_INTDIV0])dnl
  386.   AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl
  387.   AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
  388.   AC_REQUIRE([gt_INTTYPES_PRI])dnl
  389.   AC_REQUIRE([gl_XSIZE])dnl
  390.   AC_REQUIRE([gt_INTL_MACOSX])dnl
  391.  
  392.   AC_CHECK_TYPE([ptrdiff_t], ,
  393.     [AC_DEFINE([ptrdiff_t], [long],
  394.        [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
  395.     ])
  396.   AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
  397. stdlib.h string.h unistd.h sys/param.h])
  398.   AC_CHECK_FUNCS([asprintf fwprintf getcwd getegid geteuid getgid getuid \
  399. mempcpy munmap putenv setenv setlocale snprintf stpcpy strcasecmp strdup \
  400. strtoul tsearch wcslen __argz_count __argz_stringify __argz_next \
  401. __fsetlocking])
  402.  
  403.   dnl Use the _snprintf function only if it is declared (because on NetBSD it
  404.   dnl is defined as a weak alias of snprintf; we prefer to use the latter).
  405.   gt_CHECK_DECL(_snprintf, [#include <stdio.h>])
  406.   gt_CHECK_DECL(_snwprintf, [#include <stdio.h>])
  407.  
  408.   dnl Use the *_unlocked functions only if they are declared.
  409.   dnl (because some of them were defined without being declared in Solaris
  410.   dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
  411.   dnl on Solaris 2.5.1 to run on Solaris 2.6).
  412.   dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
  413.   gt_CHECK_DECL(feof_unlocked, [#include <stdio.h>])
  414.   gt_CHECK_DECL(fgets_unlocked, [#include <stdio.h>])
  415.   gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>])
  416.  
  417.   case $gt_cv_func_printf_posix in
  418.     *yes) HAVE_POSIX_PRINTF=1 ;;
  419.     *) HAVE_POSIX_PRINTF=0 ;;
  420.   esac
  421.   AC_SUBST([HAVE_POSIX_PRINTF])
  422.   if test "$ac_cv_func_asprintf" = yes; then
  423.     HAVE_ASPRINTF=1
  424.   else
  425.     HAVE_ASPRINTF=0
  426.   fi
  427.   AC_SUBST([HAVE_ASPRINTF])
  428.   if test "$ac_cv_func_snprintf" = yes; then
  429.     HAVE_SNPRINTF=1
  430.   else
  431.     HAVE_SNPRINTF=0
  432.   fi
  433.   AC_SUBST([HAVE_SNPRINTF])
  434.   if test "$ac_cv_func_wprintf" = yes; then
  435.     HAVE_WPRINTF=1
  436.   else
  437.     HAVE_WPRINTF=0
  438.   fi
  439.   AC_SUBST([HAVE_WPRINTF])
  440.  
  441.   AM_ICONV
  442.   AM_LANGINFO_CODESET
  443.   if test $ac_cv_header_locale_h = yes; then
  444.     gt_LC_MESSAGES
  445.   fi
  446.  
  447.   if test -n "$INTL_MACOSX_LIBS"; then
  448.     CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
  449.   fi
  450.  
  451.   dnl intl/plural.c is generated from intl/plural.y. It requires bison,
  452.   dnl because plural.y uses bison specific features. It requires at least
  453.   dnl bison-1.26 because earlier versions generate a plural.c that doesn't
  454.   dnl compile.
  455.   dnl bison is only needed for the maintainer (who touches plural.y). But in
  456.   dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
  457.   dnl the rule in general Makefile. Now, some people carelessly touch the
  458.   dnl files or have a broken "make" program, hence the plural.c rule will
  459.   dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
  460.   dnl present or too old.
  461.   AC_CHECK_PROGS([INTLBISON], [bison])
  462.   if test -z "$INTLBISON"; then
  463.     ac_verc_fail=yes
  464.   else
  465.     dnl Found it, now check the version.
  466.     AC_MSG_CHECKING([version of bison])
  467. changequote(<<,>>)dnl
  468.     ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
  469.     case $ac_prog_version in
  470.       '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
  471.       1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
  472. changequote([,])dnl
  473.          ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
  474.       *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
  475.     esac
  476.     AC_MSG_RESULT([$ac_prog_version])
  477.   fi
  478.   if test $ac_verc_fail = yes; then
  479.     INTLBISON=:
  480.   fi
  481. ])
  482.  
  483.  
  484. dnl Checks for special options needed on MacOS X.
  485. dnl Defines INTL_MACOSX_LIBS.
  486. AC_DEFUN([gt_INTL_MACOSX],
  487. [
  488.   dnl Check for API introduced in MacOS X 10.2.
  489.   AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
  490.     gt_cv_func_CFPreferencesCopyAppValue,
  491.     [gt_save_CPPFLAGS="$CPPFLAGS"
  492.      CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
  493.      gt_save_LIBS="$LIBS"
  494.      LIBS="$LIBS -framework CoreFoundation"
  495.      AC_TRY_LINK([#include <CFPreferences.h>],
  496.        [CFPreferencesCopyAppValue(NULL, NULL)],
  497.        [gt_cv_func_CFPreferencesCopyAppValue=yes],
  498.        [gt_cv_func_CFPreferencesCopyAppValue=no])
  499.      CPPFLAGS="$gt_save_CPPFLAGS"
  500.      LIBS="$gt_save_LIBS"])
  501.   if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
  502.     AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1,
  503.       [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
  504.   fi
  505.   dnl Check for API introduced in MacOS X 10.3.
  506.   AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent,
  507.     [gt_save_CPPFLAGS="$CPPFLAGS"
  508.      CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
  509.      gt_save_LIBS="$LIBS"
  510.      LIBS="$LIBS -framework CoreFoundation"
  511.      AC_TRY_LINK([#include <CFLocale.h>], [CFLocaleCopyCurrent();],
  512.        [gt_cv_func_CFLocaleCopyCurrent=yes],
  513.        [gt_cv_func_CFLocaleCopyCurrent=no])
  514.      CPPFLAGS="$gt_save_CPPFLAGS"
  515.      LIBS="$gt_save_LIBS"])
  516.   if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
  517.     AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1,
  518.       [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
  519.   fi
  520.   INTL_MACOSX_LIBS=
  521.   if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
  522.     INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
  523.   fi
  524.   AC_SUBST([INTL_MACOSX_LIBS])
  525. ])
  526.  
  527.  
  528. dnl gt_CHECK_DECL(FUNC, INCLUDES)
  529. dnl Check whether a function is declared.
  530. AC_DEFUN([gt_CHECK_DECL],
  531. [
  532.   AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1,
  533.     [AC_TRY_COMPILE([$2], [
  534. #ifndef $1
  535.   char *p = (char *) $1;
  536. #endif
  537. ], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)])
  538.   if test $ac_cv_have_decl_$1 = yes; then
  539.     gt_value=1
  540.   else
  541.     gt_value=0
  542.   fi
  543.   AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value],
  544.     [Define to 1 if you have the declaration of `$1', and to 0 if you don't.])
  545. ])
  546.  
  547.  
  548. dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
  549. AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
  550.